package cn.njxzc.book.masterexamples.ch11;


interface OutInterface { // 定义一个接口
	public void f();
}

public class InterfaceInner {
	public static void main(String args[]) {
		OuterClass2 out = new OuterClass2(); // 实例化一个OuterClass2对象
		// 调用doit()方法，返回一个OutInterface接口
		OutInterface outinter = out.doit();
		outinter.f(); // 调用f()方法
	}
}

class OuterClass2 {
	// 定义一个内部类实现OutInterface接口
	private class InnerClass1 implements OutInterface {
		InnerClass1(String s) { // 内部类构造方法
			System.out.println(s);
		}
		
		public void f() { // 实现接口中的f()方法
			System.out.println("访问内部类1中的f()方法");
		}
	}
	private class InnerClass2 implements OutInterface {
		InnerClass2(String s) { // 内部类构造方法
			System.out.println(s);
		}
		
		public void f() { // 实现接口中的f()方法
			System.out.println("访问内部类2中的f()方法");
		}
	}
	
	public OutInterface doit() { // 定义一个方法，返回值类型为OutInterface接口
		return new InnerClass1("访问内部类构造方法");
	}
}
